home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / invision_pwb.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  75 lines

  1. #
  2. #  This script was written by David Maciejak <david dot maciejak at kyxar dot fr>
  3. #  based on work from
  4. #  (C) Tenable Network Security
  5. #
  6. #  Ref: Alexander Antipov <Antipov SecurityLab ru>
  7. #
  8. #  This script is released under the GNU GPL v2
  9. #
  10.  
  11. if(description) 
  12.   script_id(15425); 
  13.   script_bugtraq_id(11332);
  14.   script_version("$Revision: 1.3 $"); 
  15.       
  16.   name["english"] = "Invision Power Board XSS"; 
  17.         
  18.   script_name(english:name["english"]); 
  19.  
  20. desc["english"] = "
  21. The remote host is running Invision Power Board, a web-based bulletin-board
  22. system written in PHP.
  23.  
  24. This version of Invision Power Board is vulnerable to cross-site scripting 
  25. attacks, which may allow an attacker to steal users cookies.
  26.         
  27. Solution: Upgrade to the latest version of this software
  28. Risk factor : Medium"; 
  29.         
  30.   script_description(english:desc["english"]); 
  31.         
  32.   summary["english"] = "Checks for Invision Power Board XSS";
  33.   script_summary(english:summary["english"]);
  34.   script_category(ACT_GATHER_INFO);
  35.   script_copyright(english:"This script is Copyright (C) 2004 David Maciejak");
  36.  
  37.   family["english"] = "CGI abuses : XSS";
  38.   script_family(english:family["english"]);
  39.     
  40.   script_dependencie("http_version.nasl", "invision_power_board_detect.nasl");
  41.   script_require_ports("Services/www", 80);
  42.   exit(0);
  43. }
  44.  
  45. include("http_func.inc");
  46.  
  47. port = get_http_port(default:80);
  48. if ( ! port || ! get_port_state(port) ) exit(0);
  49.  
  50.  
  51. # Check each installed instance, stopping if we find a vulnerability.
  52. installs = get_kb_list(string("www/", port, "/invision_power_board"));
  53. if (isnull(installs)) exit(0);
  54. foreach install (installs) {
  55.   matches = eregmatch(string:install, pattern:"^(.+) under (/.*)$");
  56.   if (!isnull(matches)) {
  57.     ver = matches[1];
  58.     dir = matches[2];
  59.  
  60.     s = string( "GET ", dir, "/index.php?s=5875d919a790a7c429c955e4d65b5d54&act=Login&CODE=00 HTTP/1.1\r\n", "Host: ", get_host_name(), "\r\n", "Referer: <script>foo</script>", "\r\n\r\n");
  61.     soc =  http_open_socket(port);
  62.     if(!soc) exit(0);
  63.  
  64.     send(socket: soc, data: s);
  65.     r = http_recv(socket: soc);
  66.     http_close_socket(soc);
  67.  
  68.     if (egrep(pattern:"input type=.*name=.referer.*<script>foo</script>", string:r) )
  69.     { 
  70.       security_warning(port);
  71.     }
  72.   }
  73. }
  74.